Amazon QuickSightを使用してCost and Usage Report(CUR)を可視化してみた

Amazon QuickSightを使用してCost and Usage Report(CUR)を可視化してみた

Amazon QuickSightを使用してCost and Usage Report(CUR)を可視化してみました。データソースとしてAthenaのビューを作成しています。
Clock Icon2019.10.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。サービスグループの武田です。

先日のエントリでAWS Cost and Usage Report(CUR)をAthenaでクエリできるようにしてみました。

Cost and Usage Report(CUR)のマニフェストファイルを使用してAmazon Athenaのテーブルを作成する

ところで、AWSにはAmazon QuickSightというマネージドなBIサービスがあります。これを使えばCURの可視化も簡単なのでは?ということで実際にやってみました。

QuickSightを使用するのは今回がはじめてだったので、料金体系についても調べました。結論からいえば、「一人で」「1GB以下のデータ」であれば無料で使えるようです。詳しくはirbbbのエントリを参照ください。

Amazon QuickSightの試用期間・無料枠はどこまで適用される?

QuickSightにインポートする準備

QuickSightを使い始める前に、少し下準備が必要です。QuickSightにデータをインポートする方法はいくつか選択肢があります。今回はAthenaをデータソースにしてみました。

出力されたCURからAthenaのテーブルを作成するには、前述したエントリと同様スクリプトを使用します。

TAKEDA-Takashi/athena-create-table-cur: S3に保存されているCURマニフェストファイルからAthenaテーブル作成用のDDLを出力する。

ただ、このスクリプトで作成したテーブルをデータソースにすると少し問題があります。それは料金情報など数値データであってもすべて文字列型となっているため、QuickSightにインポートした後うまく集計ができません。そのため型変換を済ませたAthenaのビューを使用します。具体的にはスクリプトを実行する際に-vのオプションを付与してください。これでテーブルおよびビューが作成されます。

$ pipenv run python main.py -m s3://cm-cur-123456789012/CUR/Hourly/cur_hourly/20191001-20191101/cur_hourly-Manifest.json athena -o s3://aws-athena-query-results-123456789012-ap-northeast-1 -v

QuickSightを使ってみた

それでは実際にQuickSightを使用していきます。私のアカウントではサインアップをしたことがなかったため、マネジメントコンソールからQuickSightにアクセスするとサインアップを求められました。[Sign up for QuickSight]を押下します。

次にプランを選択します。前述したように「一人で」「1GB以下のデータ」であればどちらのプランでも無料で試せます。好きなプランを選択してください。

QuickSight リージョンを東京にしたところ、UIも日本語に変わりました。アカウント名やメールアドレスは自分の環境に合わせて設定してください。

同じ画面の下部にパーミッションの設定があります。とりあえずチェックを全部抜いてしまいましたが、初期設定のまま で大丈夫でした。また後からでも変更はできますので、自由に選んで問題ありません(私は後でAthenaを許可しました)。

入力値に問題がなければサインアップ完了です。[Amazon QuickSight に移動する]を押下すると移動します。

QuickSightの画面に遷移したら、CURのデータをインポートしましょう。左上の[新しい分析]を押下します。

左上の[新しいデータセット]を押下します。

新規データソースの一覧から Athena を選択します。

データソース名の入力が求められます。好きな名前で結構ですが、今回はcurとしてみました。

Athenaのテーブル(とビュー)一覧が表示されます。前述したようにここでテーブルを選んでしまうとデータが文字列型となってしまい、数値の集計がうまくできません(やりようはあるかもですが)。そのため、型変換ができているビューを選択します。ここではv_cur_20191001_20191101を選択しました。

インポートの確認画面です。[Visualize]を押下します。

しばらく待っているとインポートが完了します。今回は36318行でスキップは0件でした。

インポートが終われば後は好きに可視化してください。たとえばサービスごとに利用費の合計を出すなんてことも簡単にできます。

まとめ

実は最初、文字列のまま集計しようとして、なぜか合計値がQuickSightで出せないといった初歩的なところでつまずいていました。回り道はありましたが、最終的にはきちんとグラフが出せてよかったです。ぜひみなさんもCURを可視化して費用最適化などに利用してみてください。

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.